package CapaDatos;

public class Empleado extends Persona
{
    private char estadoCivil;
    private Cargo cargo;
    private String puesto;
    private String descripcionLaboral;
    private HorarioSemanal horario;
    private float sueldo;
    private boolean asignado;

    public Empleado (String nombre, String apellido, String cedula, char sexo, char estadoCivil, String fechaNacimiento, Cargo cargo, String puesto, String descripcionLaboral, float sueldo)
    {
        super (nombre, apellido, cedula, sexo, fechaNacimiento);
        this.cargo    = cargo;
        this.puesto   = puesto;
        this.descripcionLaboral = descripcionLaboral;
        this.sueldo   = sueldo;
        this.asignado = false;
    }

    public Empleado (String nombre, String apellido, String cedula, char sexo, char estadoCivil, Fecha fechaNacimiento, Cargo cargo, String puesto, String descripcionLaboral, HorarioSemanal horario, float sueldo, boolean asignado)
    {
        super (nombre, apellido, cedula, sexo, fechaNacimiento);
        this.cargo    = cargo;
        this.puesto   = puesto;
        this.descripcionLaboral = descripcionLaboral;
        this.sueldo   = sueldo;
        this.asignado = asignado;
        this.horario  = horario;
    }

    // <editor-fold defaultstate="collapsed" desc="Getters y Setters">
    public Cargo getCargo() {
        return cargo;
    }

    public void setCargo (Cargo cargo) {
        this.cargo = cargo;
    }

    public char getEstadoCivil() {
        return estadoCivil;
    }

    public void setEstadoCivil (char estadoCivil) {
        this.estadoCivil = estadoCivil;
    }

    public String getPuesto() {
        return this.puesto;
    }

    public void setPuesto (String elPuesto) {
        this.puesto = elPuesto;
    }

    public String getDescripcionLaboral() {
        return this.descripcionLaboral;
    }

    public void setDescripcionLaboral (String laDescripcion) {
        this.descripcionLaboral = laDescripcion;
    }

    public float getSueldo() {
        return this.sueldo;
    }

    public void setSueldo (float elSueldo) {
        this.sueldo = elSueldo;
    }

    public boolean isAsignado() {
        return asignado;
    }

    public void setAsignado(boolean asignado) {
        this.asignado = asignado;
    }

    public HorarioSemanal getHorario() {
        return horario;
    }

    public void setHorario(HorarioSemanal horario) {
        this.horario = horario;
    }
    // </editor-fold>

    public Empleado copia()
    {
        return new Empleado
                (
                    this.getNombre(), this.getApellido(), this.getCedula(),
                    this.getSexo(), this.getEstadoCivil(), this.getFechaNacimiento(),
                    this.cargo, puesto, descripcionLaboral,
                    this.horario, this.sueldo, this.asignado
                );
    }
}